home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #1 / Amiga Plus CD - 2000 - No. 1.iso / Tools / Dev / Sas-PPC / examples / rdargs.c < prev    next >
Encoding:
C/C++ Source or Header  |  1999-12-03  |  1.0 KB  |  49 lines

  1. #include <proto/dos.h>
  2. #include <proto/exec.h>
  3.  
  4. #define TEMPLATE "FOLDER/K,PUBSCREEN/K,SETTINGS/K,PORTNAME/K,MAIL/S,TO/K,CC/K,SUBJECT/K,FILE/K,"\
  5.     "SCREENTOFRONT/S,ADDRESS/K,REALNAME/K,SPOOLFILE/K,REPLYTO/K,DONTGETMAIL/S"
  6. typedef enum { ARG_FOLDER, ARG_PUBSCREEN, ARG_SETTINGS, ARG_PORTNAME, ARG_MAIL,
  7.     ARG_TO, ARG_CC, ARG_SUBJECT, ARG_FILE, ARG_SCREENTOFRONT,
  8.     ARG_ADDRESS, ARG_REALNAME, ARG_SPOOLFILE, ARG_REPLYTO, ARG_DONTGETMAIL,
  9.     ARGNUM } Args;
  10.  
  11.  
  12. LONG ArgArray[ARGNUM+1];
  13.  
  14. main()
  15. {
  16.         struct RDArgs *RDArgs;
  17.  
  18.     if (RDArgs = ReadToolArgs( TEMPLATE, ArgArray ))
  19.     {
  20.         printf("%x\n", ArgArray[ARG_PORTNAME]);
  21.         FreeToolArgs( RDArgs );
  22.     }
  23. }
  24.  
  25.  
  26. ReadToolArgs( STRPTR template, LONG *argarray )
  27. {
  28.     struct RDArgs *rda = AllocDosObject( DOS_RDARGS, NULL );
  29.  
  30.     if (rda && template)
  31.     {
  32.         rda->RDA_ExtHelp = NULL;
  33.         rda = ReadArgs(template, argarray, rda);
  34.     }
  35.     return rda;
  36. }
  37.  
  38.  
  39. FreeToolArgs( struct RDArgs *rda )
  40. {
  41.     if (rda)
  42.     {
  43.         if ( rda->RDA_Source.CS_Buffer )
  44.             FreeVec( rda->RDA_Source.CS_Buffer );
  45.         FreeArgs( rda );
  46.         FreeDosObject( DOS_RDARGS, rda );
  47.     }
  48. }
  49.